package com.ruoyi.back.service

import com.baomidou.mybatisplus.extension.plugins.pagination.Page
import com.baomidou.mybatisplus.extension.service.IService
import com.ruoyi.app.common.Data
import com.ruoyi.back.domain.AppUser
import com.ruoyi.back.domain.dto.AppUserDto
import com.ruoyi.back.domain.dto.UserListSearchDto
import com.ruoyi.back.domain.vo.UserDetailVo
import com.ruoyi.back.domain.vo.UserInfo
import com.ruoyi.back.domain.vo.UserListVo


interface AppUserService : IService<AppUser> {

    /**
     * 操作用户
     */
    fun operationUser(appUserDto: AppUserDto): AppUser


    /**
     * 通过用户id获取用户
     */
    fun selectUserByUserId(userId: String): AppUser?


    /**
     * 后台管理系统获取app用户列表
     */
    fun selectAppUserList(userListSearchDto: UserListSearchDto): Page<UserListVo>

    /**
     * 获取app详情信息
     */
    fun appUserDetail(userId: Long): Data<UserDetailVo>

    /**
     * 获取用户信息
     */
    fun appUserInfo(userId: Long): UserInfo?

    /**
     * 冻结app用户
     */
    fun freezeAppUser(userId: Long): Data<Boolean>

    /**
     * 移除app用户
     */
    fun removeAppUser(userIds: String): Data<Boolean>

    /**
     * 取消用户会员
     */
    fun cancelMember(userId: Long): Data<Boolean>
}